---
title: NotifyPopup notify-task capture
summary: Captures and validates a Notify ID, Notify Date, and Notify Text, then confirms the entry to the hosting page.
status: draft
owner: <owner>
last_reviewed: 2026-08-21
library: SAIF.Presentation.Web.Controls.PopUps.Infragistics111
reference_type: package
operation_id: OP-4
trigger: Hosting page sets Active = True, TitleText, optional prior field values.
---

# NotifyPopup notify-task capture

This operation captures a Notify ID, Notify Date, and Notify Text for a Task/Notify entry, enforcing required-field and date validation before confirming the entry to the hosting page.

| Field | Value |
| --- | --- |
| **Operation ID** | OP-4 |
| **Trigger** | Hosting page sets `Active = True`, `TitleText`, optional prior field values. |
| **Inputs** | `TitleText`, `ControlWithFocus`, prior `txtNotifyID`/`wdteNotifyDate`/`txtNotifyText` values |
| **Outputs** | `ConfirmAction(Confirm, NotifyEventArgs)` |
| **Primary components** | `NotifyPopup.CreateChildControls`, `NotifyPopup.EditNotifyControls`, `NotifyPopup.SaveButtonClick`, `NotifyPopup.CancelButtonClick` |
| **Entry point** | `SAIF.Presentation.Web.Controls.PopUps.Infragistics111\NotifyPopup.vb` |

## Steps

1. `CreateChildControls()` parses `NotifyPopup.ascx`, resolves `txtNotifyID`, `wdteNotifyDate` (Infragistics `WebDateTimeEdit`), `txtNotifyText`, `lblErrorMsg`, `lblTitleBar`; wires Save/Cancel handlers.
2. `Render()` sets title/error labels, wires an `onblur` on `txtNotifyID` to call the client `SetNotifyDateDefault()` helper, positions the popup, enables buttons, renders, and focuses `ControlWithFocus` (default `"txtNotifyID"`).
3. On Save, `EditNotifyControls()` enforces ([BR-POPUP-003](../business-rules.md#br-popup-003-notify-entry-requires-a-notify-id%2C-a-valid-notify-date%2C-and-the-date-must-not-precede-today)):
   - Notify ID required (`MSG_ENTER_VALID_NOTIFY_ID`).
   - If ID present, a valid (non-`MinValue`) Notify Date is required (`MSG_ENTER_VALID_NOTIFY_DATE`).
   - The Notify Date cannot be before today (`MSG_NOTIFY_DATE_PRIOR_TO_TODAY`).
   - If valid, raises `ConfirmAction(True, New NotifyEventArgs(id, date, text))`.
4. On Cancel, raises `ConfirmAction(False, ...)` with current values then calls `ResetControls()` (clears all fields and `ErrorMsg`).

## Process flow

The following diagram visualizes the notify-task capture flow.

```mermaid
flowchart TD
	Start([Hosting page sets Active = True]) --> Create[CreateChildControls parses ASCX]
	Create --> Render[Render popup, focus ControlWithFocus]
	Render --> Action{Save or Cancel}
	Action -->|Save| Validate{EditNotifyControls valid?}
	Validate -->|Yes| Confirm([ConfirmAction True with NotifyEventArgs])
	Validate -->|No| Error([ErrorMsg set, focus offending field])
	Action -->|Cancel| Reset[ResetControls]
	Reset --> Cancel([ConfirmAction False])
```

## Failure and edge-case behavior

- Missing Notify ID, missing/invalid Notify Date, or a past-dated Notify Date each block confirmation and set `ErrorMsg`/`ControlWithFocus` to the offending field ([BR-POPUP-003](../business-rules.md#br-popup-003-notify-entry-requires-a-notify-id%2C-a-valid-notify-date%2C-and-the-date-must-not-precede-today)).

## Related documentation
- [Operations and processes](../operations-processes.md)
- [Business rules](../business-rules.md)

## Sources
- `SAIF.Presentation.Web.Controls.PopUps.Infragistics111\NotifyPopup.vb`
- `SAIF.Presentation.Web.Controls.PopUps.Infragistics111\NotifyPopup.ascx`
